package com.chenfan.mcn.service;

import com.chenfan.mcn.clients.privilege.SUserVo;
import com.chenfan.mcn.model.AeQuarterlyTable;
import com.chenfan.mcn.model.McnPage;
import com.chenfan.mcn.model.dto.AeQuarterlyTableDTO;
import com.chenfan.mcn.model.dto.AeQuarterlyTableSearchDTO;
import com.chenfan.mcn.model.dto.AeQuarterlyTableUpdateDTO;
import com.chenfan.mcn.model.dto.AeRoyaltiesExportDTO;
import com.chenfan.mcn.model.vo.AeQuarterlyBoxList;
import com.chenfan.mcn.model.common.PageInfo;

import java.util.List;

/**
 * @Author chenguopeng
 * @Date 2021/6/7 15:55
 */
public interface AeQuarterlyTableService {

    /**
     * 分页获取AE季度提成单
     *
     * @param dto
     * @param pageReqeust
     * @return
     */
    PageInfo<AeQuarterlyTable> getPage(McnPage<AeQuarterlyTable> pageReqeust, AeQuarterlyTableSearchDTO dto);

    /**
     * 新增或修改AE季度提成单
     *
     * @param aeQuarterlyTableDTO
     * @return
     */
    Long createOrUpdate(AeQuarterlyTableDTO aeQuarterlyTableDTO);

    /**
     * 修改AE季度提成单
     *
     * @param aeQuarterlyTableUpdateDTO
     * @return
     */
    Integer update(AeQuarterlyTableUpdateDTO aeQuarterlyTableUpdateDTO);

    /**
     * 修改状态
     *
     * @param aeRoyaltiesExportDTO
     */
    void changeStatus(AeRoyaltiesExportDTO aeRoyaltiesExportDTO);

    /**
     * 获取特定发送人信息
     *
     * @return
     */
    SUserVo getSendUserVo();

    /**
     * 获取季度提成单列表中所有季度单号
     *
     * @return
     */
    List<String> getAeQuarterlyCode();

    /**
     * 获取当前季度前六个月份
     *
     * @return {@link List<String>}
     */
    List<String> getMonths();

    /**
     * AE提成单新建页下拉筛选
     *
     * @return {@link AeQuarterlyBoxList}
     */
    AeQuarterlyBoxList getAeQuarterlyBoxList();
}
